package info.wangyuan.agent.log;

import dev.langchain4j.model.chat.listener.ChatModelErrorContext;
import dev.langchain4j.model.chat.listener.ChatModelListener;
import dev.langchain4j.model.chat.listener.ChatModelRequestContext;
import dev.langchain4j.model.chat.listener.ChatModelResponseContext;
import lombok.extern.slf4j.Slf4j;

/**
 * 对话请求异常处理
 *
 * @author Albert
 */
@Slf4j
public class MyChatModelListener implements ChatModelListener {

    @Override
    public void onRequest(ChatModelRequestContext requestContext) {

        // onRequest配置的k:v键值对，在onResponse阶段可以获得，上下文传递参数好用
//        String uuidValue = IdUtil.simpleUUID();
//        requestContext.attributes().put("TraceID",uuidValue);
        log.info("请求参数requestContext:{}", requestContext);
    }

    @Override
    public void onResponse(ChatModelResponseContext responseContext) {
//        Object object = responseContext.attributes().get("TraceID");
        log.info("返回结果responseContext:{}", responseContext);
    }

    @Override
    public void onError(ChatModelErrorContext errorContext) {
        log.error("请求异常ChatModelErrorContext:{}", errorContext);
    }
}
